首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
逆波兰表达式求值
[编程题]逆波兰表达式求值
热度指数:21923
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给定一个逆波兰表达式,求表达式的值。
数据范围:表达式长度满足
,表达式中仅包含数字和 + ,- , * , / ,其中数字的大小满足
。
示例1
输入
["2","1","+","4","*"]
输出
12
示例2
输入
["2","0","+"]
输出
2
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(92)
分享
提交结果有问题?
1个回答
88篇题解
添加回答
0
JavaScript Node
牛客710667568号
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
*
@param
tokens
string字符串一维数组
*
@return
int整型
*/
function
evalRPN
(
tokens
) {
// write code here
let
stack
= [];
let
sum
=
0
;
console
.
log
(
typeof
tokens
[
0
])
for
(
let
i
=
0
;
i
<
tokens
.
length
;
i
++) {
if
(
/
[
0-9
]
/
.
test
(
tokens
[
i
])) {
stack
.
push
(
tokens
[
i
]);
}
else
{
switch
(
tokens
[
i
]) {
case
'+'
:
sum
=
parseInt
(
stack
[
stack
.
length
-
2
]) +
parseInt
(
stack
[
stack
.
length
-
1
]);
stack
.
pop
();
stack
.
pop
();
stack
.
push
(
sum
);
break
;
case
'-'
:
sum
=
parseInt
(
stack
[
stack
.
length
-
2
]) -
parseInt
(
stack
[
stack
.
length
-
1
]);
stack
.
pop
();
stack
.
pop
();
stack
.
push
(
sum
);
break
;
case
'*'
:
sum
=
parseInt
(
stack
[
stack
.
length
-
2
]) *
parseInt
(
stack
[
stack
.
length
-
1
]);
stack
.
pop
();
stack
.
pop
();
stack
.
push
(
sum
);
break
;
case
'/'
:
sum
=
parseInt
(
stack
[
stack
.
length
-
2
]) /
parseInt
(
stack
[
stack
.
length
-
1
]);
stack
.
pop
();
stack
.
pop
();
stack
.
push
(
sum
);
break
;
}
}
}
return
stack
[
0
];
}
module
.
exports
= {
evalRPN :
evalRPN
};
发表于 2023-09-07 10:27:30
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
数组
栈
基础数学
难度:
1条回答
92收藏
4840浏览
热门推荐
通过挑战的用户
查看代码
牛客89418...
2022-10-24 22:29:14
牛客51923...
2022-09-16 18:18:28
£201810...
2022-09-16 18:07:58
牛客41331...
2022-09-16 15:24:43
牛客323127号
2022-09-16 14:07:13
相关试题
车站建造问题
基础数学
评论
(40)
线段树编号问题
基础数学
评论
(2)
牛牛的超市
动态规划
基础数学
评论
(5)
之前的经历中单品数据分析的经验丰富...
评论
(1)
2022 诺瓦科技 Perl re...
perl
System Verilog
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ public int evalRPN (String[] tokens) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串vector * @return int整型 */ int evalRPN(vector
& tokens) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param tokens string字符串一维数组 # @return int整型 # class Solution: def evalRPN(self , tokens ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ public int evalRPN (List
tokens) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ function evalRPN( tokens ) { // write code here } module.exports = { evalRPN : evalRPN };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param tokens string字符串一维数组 # @return int整型 # class Solution: def evalRPN(self , tokens: List[str]) -> int: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ func evalRPN( tokens []string ) int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @param tokensLen int tokens数组长度 * @return int整型 */ int evalRPN(char** tokens, int tokensLen ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param tokens string字符串一维数组 # @return int整型 # class Solution def evalRPN(tokens) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ def evalRPN(tokens: Array[String]): Int = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ fun evalRPN(tokens: Array
): Int { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ public int evalRPN (String[] tokens) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ export function evalRPN(tokens: string[]): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ func evalRPN ( _ tokens: [String]) -> Int { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ pub fn evalRPN(&self, tokens: Vec
) -> i32 { // write code here } }
["2","1","+","4","*"]
12
["2","0","+"]
2